首页> 外文OA文献 >Fortran 2008 coarrays
【2h】

Fortran 2008 coarrays

机译:Fortran 2008协同阵列

代理获取
本网站仅为用户提供外文OA文献查询和代理获取服务,本网站没有原文。下单后我们将采用程序或人工为您竭诚获取高质量的原文,但由于OA文献来源多样且变更频繁,仍可能出现获取不到、文献不完整或与标题不符等情况,如果获取不到我们将提供退款服务。请知悉。

摘要

Coarrays are a Fortran 2008 standard feature intended for SIMD type parallel programming. The runtime environment starts a number of identical executable images of the coarray program, on multiple processors, which could be actual physical processors or threads. Each image has a unique number and its private address space. Ordinary variables are private to an image. Coarray variables are available for read/write access from any other image. Coarray communications are of "single sided" type, i.e. a remote call from imageA to image B does not need to be accompanied by a corresponding call in image B. This feature makes coarray programming a lot simpler than MPI. The standard provides synchronisation intrinsics to help avoid race conditions or deadlocks. Any ordinary variable can be made into a coarray - scalars, arrays, intrinsic or derived data types, pointers, allocatables are all allowed. Coarrays can be declared in, and passed to, procedures. Coarrays are thus very flexible and can be used for a number of purposes. For example a collection of coarrays from all or some images can be thought of as a large single array. This is precisely the inverse of the model partitioning logic, typical in MPI programs. A coarray program can exploit functional parallelism too, by delegating dis- tinct tasks to separate images or teams of images. Coarray collectives are expected to become a part of the next version of the Fortran standard. A major unresolved problem of coarray programming is the lack of standard parallel I/O facility in Fortran. In this paper several simple complete coarray programs are shown and compared to alternative parallel technologies - OpenMP, MPI and Fortran 2008 intrinsic "do concurrent". Inter image communication patterns and data transfer are illustrated. An example of a materials microstructure simulation coarray program scaled up to 32k cores is shown. Problems with coarray I/O at this scale are highlighted and addressed with the use of MPI-I/O. A hybrid MPI/coarray programming is discussed and illustrated with a finite element/cellular automata (CAFÃ) multi-scale model. The paper completes with a description of the new coarray language features, expected in the 2015 Fortran standard, and with a brief list of coarray resources
机译:协同数组是Fortran 2008的标准功能,旨在用于SIMD类型的并行编程。运行时环境在多个处理器(可能是实际的物理处理器或线程)上启动了协同阵列程序的许多相同的可执行映像。每个图像都有一个唯一的编号及其专用地址空间。普通变量是图像专用的。协数组变量可用于从任何其他映像进行读/写访问。协同阵列通信是“单面”类型的,即从图像A到图像B的远程调用不需要伴随图像B中的相应调用。此功能使协同阵列编程比MPI简单得多。该标准提供了同步内在函数,以帮助避免争用条件或死锁。任何普通变量都可以制成协数组-标量,数组,内部或派生数据类型,指针,可分配变量均被允许。协数组可以在过程中声明并传递给过程。因此,协阵列非常灵活,可用于多种用途。例如,可以将来自所有或某些图像的共阵列的集合视为一个大的单阵列。这恰恰与MPI程序中典型的模型划分逻辑相反。协同阵列程序也可以通过委派不同的任务来分离图像或图像组,从而利用功能并行性。 Coarray集合体有望成为Fortran标准下一版本的一部分。协同阵列编程的主要未解决问题是Fortran中缺少标准的并行I / O工具。本文展示了几个简单的完整协同阵列程序,并将它们与其他并行技术进行了比较-OpenMP,MPI和Fortran 2008固有的“并发”。示出了图像间的通信模式和数据传输。展示了一个可扩展至32k内核的材料微结构仿真协同阵列程序的示例。使用MPI-I / O可以突出并解决这种规模的协同阵列I / O的问题。使用有限元/细胞自动机(CAFÃ)多尺度模型讨论和说明了混合MPI / coarray编程。本文最后介绍了2015年Fortran标准中预期的新协同数组语言功能,并简要列出了协同数组资源。

著录项

相似文献

  • 外文文献
  • 中文文献
  • 专利
代理获取

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号